ABC314 C - Rotate Colored Subsequence
https://atcoder.jp/contests/abc314/tasks/abc314_c
提出
code: python
from collections import defaultdict
n, m = map(int, input().split())
s = input()
c = list(map(int, input().split()))
d = defaultdict(int)
for i in range(n):
d[si] = ci
print(d)
# どうやって回す?
解答
code: python
n, m = map(int, input().split())
s = input()
c = list(map(int, input().split()))
color = [[] for _ in range(m)]
for i in range(n):
ci -= 1
color[ci].append(i)
# print(color)
# 0, 3, 6], 1, 4, 5, 7, [2
# 各色が何回でたか
p = 0 * m
res = ""
for i in range(n):
mod = len(color[ci])
res += s[color[ci][(p[ci] - 1 + mod) % mod]]
p[ci] += 1
print(res)
code: python
n, m = map(int, input().split())
s = input()
c = list(map(int, input().split()))
color = [[] for _ in range(m)]
for i in range(n):
ci -= 1
color[ci].append(i)
# print(color)
# 0, 3, 6], 1, 4, 5, 7, [2
# 右回り
# 2 0 1
# 3 0 1 2
# 0
# 各色が何回でたか
p = 0 * m
res = ""
for i in range(n):
if p[ci] == 0:
res += s[color[ci][len(color[ci])-1]]
else:
res += s[color[ci][p[ci]-1]]
p[ci] += 1
print(res)
メモ
ABC314 C問題(Rotate Colored Subsequence)を解く